Accordion Layout এবং Collapsible Panels হল ExtJS এর গুরুত্বপূর্ণ ইউজার ইন্টারফেস উপাদান, যা ইউজারের ইন্টারঅ্যাকশন এবং অ্যাপ্লিকেশনের ডাইনামিক অ্যাডজাস্টমেন্ট সক্ষম করে। এগুলি সাধারণত ব্যবহারকারীর জন্য স্পেস অপ্টিমাইজ করার জন্য এবং অ্যাপ্লিকেশনের বিভিন্ন সেকশনকে কার্যকরীভাবে প্রেজেন্ট করার জন্য ব্যবহৃত হয়।
এই গাইডে, আমরা Accordion Layout এবং Collapsible Panels কিভাবে তৈরি এবং ব্যবহার করতে হয়, তা দেখব।
Accordion Layout একটি লেআউট যা একাধিক প্যানেল বা সেকশনকে একটি সময়ে একটিতে প্রদর্শন করতে দেয়। যখন একটি প্যানেল খুলে যায়, তখন অন্য প্যানেলটি বন্ধ হয়ে যায়। এটি বিশেষভাবে ড্যাশবোর্ড বা কনটেন্ট এক্সপ্লোরেশন ইন্টারফেসে ব্যবহৃত হয়, যেখানে অনেক তথ্য একসাথে প্রদর্শন করতে হয়, তবে শুধুমাত্র একটি সেকশন একবারে দৃশ্যমান থাকে।
Ext.create('Ext.panel.Panel', {
title: 'Accordion Layout',
layout: {
type: 'accordion',
animate: true // এ্যানিমেটেড ট্রানজিশন সক্ষম
},
renderTo: Ext.getBody(),
items: [
{
title: 'Panel 1',
html: 'Content of Panel 1',
collapsed: false // প্রথম প্যানেল খোলা থাকবে
},
{
title: 'Panel 2',
html: 'Content of Panel 2'
},
{
title: 'Panel 3',
html: 'Content of Panel 3'
}
]
});
ব্যাখ্যা:
layout: { type: 'accordion' }
: এটি লেআউট টেমপ্লেট হিসেবে অ্যাকর্ডিয়ন নির্বাচন করে।collapsed: false
: প্রথম প্যানেলটি ডিফল্টভাবে খোলা থাকবে।animate: true
: প্যানেল স্যুইচিং এ অ্যানিমেশন যুক্ত করা হয়েছে।এখানে, তিনটি প্যানেল তৈরি করা হয়েছে, যেখানে একে একে একটি প্যানেল খোলা যাবে এবং বাকি প্যানেলগুলো বন্ধ থাকবে।
Collapsible Panels হল এমন প্যানেল যা ব্যবহারকারীর ইন্টারঅ্যাকশনের মাধ্যমে সংকুচিত বা বিস্তৃত (toggle) হতে পারে। এটি একটি প্যানেলের ভিউয়ের আকার পরিবর্তন করতে সাহায্য করে। প্যানেলটি টগল করার জন্য একটি বাটন বা ড্র্যাগ ব্যবহার করা যেতে পারে।
Ext.create('Ext.panel.Panel', {
title: 'Collapsible Panel',
width: 300,
height: 200,
collapsible: true, // প্যানেলটিকে টগল করা যাবে
collapsed: false, // ডিফল্টভাবে প্যানেলটি খোলা থাকবে
renderTo: Ext.getBody(),
html: 'This is a collapsible panel!'
});
ব্যাখ্যা:
collapsible: true
: এটি প্যানেলটিকে টগলেবল করে তোলে, যাতে ব্যবহারকারী প্যানেলটি খোলার এবং বন্ধ করার জন্য একটি বাটন দেখতে পান।collapsed: false
: ডিফল্টভাবে প্যানেলটি খোলা থাকবে। আপনি true
করলে প্যানেলটি শুরুতে বন্ধ থাকবে।আপনি যদি প্যানেলটিতে collapse এবং expand করার জন্য কাস্টম বাটন যুক্ত করতে চান, তাহলে tools
কনফিগারেশন ব্যবহার করতে পারেন, যা ব্যবহারকারীকে প্যানেলটি টগল করার জন্য একটি বাটন প্রদান করবে।
Ext.create('Ext.panel.Panel', {
title: 'Collapsible Panel with Toolbars',
width: 300,
height: 200,
collapsible: true,
tools: [{
type: 'collapse', // collapse টুল
handler: function() {
alert('Panel collapsed!');
}
}],
renderTo: Ext.getBody(),
html: 'This is a collapsible panel with a collapse tool button.'
});
এখানে, tools
কনফিগারেশন ব্যবহার করা হয়েছে যা একটি টুলবারে "collapse" বাটন প্রদর্শন করবে। যখন ব্যবহারকারী এটি ক্লিক করবে, প্যানেলটি সংকুচিত হবে এবং একটি এলার্ট প্রদর্শিত হবে।
আপনি একাধিক Collapsible Panels কে Accordion Layout এর মধ্যে সংযুক্ত করতে পারেন, যাতে একবারে একটি প্যানেল খোলা থাকে এবং অন্যান্য প্যানেলগুলি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।
Ext.create('Ext.panel.Panel', {
title: 'Accordion Layout with Collapsible Panels',
layout: {
type: 'accordion',
animate: true
},
renderTo: Ext.getBody(),
items: [
{
title: 'Panel 1',
html: 'Content of Panel 1',
collapsible: true, // এটি collapsible প্যানেল হবে
collapsed: false
},
{
title: 'Panel 2',
html: 'Content of Panel 2',
collapsible: true, // এটি collapsible প্যানেল হবে
collapsed: true
},
{
title: 'Panel 3',
html: 'Content of Panel 3',
collapsible: true, // এটি collapsible প্যানেল হবে
collapsed: true
}
]
});
এখানে, একটি Accordion Layout তৈরি করা হয়েছে এবং এতে তিনটি Collapsible Panels সংযুক্ত করা হয়েছে। প্রতিটি প্যানেল একটি নির্দিষ্ট সময়ের জন্য খোলা বা বন্ধ থাকবে, এবং ব্যবহারকারী তাদের টগল করতে পারবে।
Responsive Design একটি গুরুত্বপূর্ণ দিক, যাতে আপনার অ্যাপ্লিকেশন মোবাইল এবং ডেস্কটপ উভয় প্ল্যাটফর্মেই ভালভাবে কাজ করে। ExtJS তে আপনি লেআউট এবং প্যানেলগুলোর responsive আচরণ কনফিগার করতে পারেন।
Ext.create('Ext.panel.Panel', {
title: 'Responsive Accordion Layout',
layout: {
type: 'accordion',
animate: true
},
width: '100%',
renderTo: Ext.getBody(),
items: [
{
title: 'Panel 1',
html: 'Content of Panel 1',
collapsible: true,
collapsed: false
},
{
title: 'Panel 2',
html: 'Content of Panel 2',
collapsible: true,
collapsed: true
}
]
});
এখানে, width: '100%'
সেট করা হয়েছে, যা গ্রিড বা প্যানেলকে responsively কাজ করতে সাহায্য করবে, বিশেষ করে মোবাইল ডিভাইসে।
এই উপাদানগুলো ব্যবহারের মাধ্যমে আপনি খুব সহজে একটি ডাইনামিক এবং ইন্টারঅ্যাকটিভ ইউজার ইন্টারফেস তৈরি করতে পারবেন যা বিভিন্ন স্ক্রীন সাইজে স্বাভাবিকভাবে কাজ করবে।
Read more